---
sidebar_position: 2 
---
# 字符串评估器

字符串评估器是LangChain中的一个组件，设计用于通过将其生成的输出（预测）与参考字符串或输入进行比较，来评估语言模型的性能。这种比较是评估语言模型的关键步骤，提供了生成文本的准确性或质量的度量。

在实践中，字符串评估器通常用于评估预测的字符串与给定的输入，如问题或提示。通常，提供参考标签或上下文字符串来定义正确或理想的响应应该是什么样的。这些评估器可以定制，以便将评估过程适应于您的应用程序的特定要求。

要创建自定义字符串评估器，从`StringEvaluator`类继承并实现`_evaluate_strings`方法。如果你需要异步支持，也要实现`_aevaluate_strings`方法。

以下是与字符串评估器相关的关键属性和方法的概述：

- `evaluation_name`：指定评估的名称。
- `requires_input`：布尔属性，指示评估器是否需要输入字符串。如果为True，当未提供输入时，评估器将引发错误。如果为False，如果提供了输入，将记录一个警告，表明它将不会在评估中考虑。
- `requires_reference`：布尔属性，指定评估器是否需要参考标签。如果为True，当未提供参考时，评估器将引发错误。如果为False，如果提供了参考，将记录一个警告，表明它将不会在评估中考虑。

字符串评估器还实现了以下方法：

- `aevaluate_strings`：异步评估Chain或Language Model的输出，支持可选的输入和标签。
- `evaluate_strings`：同步评估Chain或Language Model的输出，支持可选的输入和标签。

以下部分提供了关于可用的字符串评估器实现以及如何创建自定义字符串评估器的详细信息。

import DocCardList from "@theme/DocCardList";

<DocCardList />

